Hi guys, |
Re: for Module in Folder do http://www.ibm.com/developerworks/forums/thread.jspa?threadID=274538&tstart=0 |
Re: for Module in Folder do SystemAdmin - Fri Aug 28 09:41:04 EDT 2009 Regards, Manuel |
Re: for Module in Folder do The "for item in folder/project" loops provide closed modules in their create (item) order. Usually you'd prefer them in alpha order. If you want things processed in GUI displayed order, you'd do something like this:
void RecurseFolder(Folder fld)
{ // Deal RECURSIVELY with sub-folders, and then all modules in this folder
Skip skpItems = createString()
Item itm
string NameItem
Folder fldNew
// Stage in Skip, key is name which is Alpha order
for itm in fld do
{ put (skpItems, fullName(itm), itm)
}
// Recurse through sub-folders
for itm in skpItems do
{ if (type(itm) == "Folder" or type(itm) == "Project")
{ NameItem = (string key skpItems)
fldNew = folder(NameItem)
RecurseFolder(fldNew) // *** RECURSION ***
}
}
// Now deal with modules in THIS folder
for itm in skpItems do
{ NameItem = (string key skpItems)
if (type(itm) == "Formal") DealWithFormalModule(NameItem)
elseif(type(itm) == "Descriptive") DealWithDescriptiveModule(NameItem)
elseif(type(itm) == "Link") DealWithLinkModule(NameItem)
else{} // Ignore Folder/Project
}
delete(skpItems)
} // end RecurseFolder()
Folder fCurr = current
if (!null project(fullName(fCurr)) // Folder IS a project; no need to prompt
RecurseFolder(fCurr)
elseif (confirm("[Confirm] to do current Folder;\n[Cancel] to do current Project"))
RecurseFolder(fCurr)
else RecurseFolder(folder(fullName(getParentProject(fCurr)))
|